23

» WarCraft 3 / Помогите.

Похожие вопросы:

ответ
юзаешь блинк повышаешь или уменьшаешь лвл блинка (в котором в лвлах выставляешь уменьшающуюся дистанцию)
ответ
Тема для заказа скилов xgm.guru/p/wc3/needspells
ответ
Делаешь два типа ворот - открытый и закрытый. Рисуешь пути для открытых ворот и для закрытых. Делаешь спелл "Открыть/Закрыть ворота" и даешь его двум моделям - воротам открытым и закрытым. Ну ты понял. В триггерах пропиши код, когда кастуется способность "Открыть/Закрыть ворота", проверяется какой тип боевой единицы. Если Ворота закрытые, триггерно меняешь их на открытые с сохранением положения. Если ворота открытые, делаешь условие (если в воротах ктото стоит, то их невозможно закрыть и спелл не срабатывает), меняешь их на закрытые. Все легче простого.
Могу скинуть карту, если вы там что-то сможете разобрать.
ответ
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]

23

» WarCraft 3 / Лимиты

Похожие вопросы:

ответ
koloff, единственно верный вариант - перетащить весь импорт из карт в кампанию. Да, трудозатратно. Да, итоговый вес доставляет. Увы.
Представь длину списка файлов в импорте кампании под конец работы
Поэтому придется думать, что загружать, а что нет. По своему опыту знаю, что вычищать потом неиспользованные данные из импорта - сущий ад. Особенно если к каждой модели по 3-4 текстуры.
И да, музыка в mp3 формате тоже не дает грузится. Онли вав.
Все грузится.
ответ
В качестве такого извращенного способа, можно использовать CheatEngine, если уже ничего не работает. Подменить число декораций на карте на 0 или какое-либо число (просто с каждой поставленной декорацией отсеиваешь значения, а потом замораживаешь на определенном).
ответ
в самой последней строке самой последней функции присваивай какое-то значение глобалке и будет тебе счастье знать, что всё закончилось успешно
ответ
Vayne, у меня вес составляет ~140 мб. Но это "пока". Не факт, что у тебя тоже будут краши. Возможно, у меня фаталит в совмещении с триггерами, объектами в РО, импортом и всем остальным. Неизвестно. Решения проблемы нет. Вероятно я первый, кто с этим столкнулся, хз короч. Средняя занимаемой оперативки редактора ~1.5 гб, мб еще из за этого. Так что не парься)
ответ
насколько я знаю, триггеры перестают создаваться из-за лимита операций, обойти его можно делая штукенции на jass, ибо там можно делать инициализацию не через стандартные пути

23

» WarCraft 3 / Защита карты

Похожие вопросы:

ответ
никак
ответ
lll_Kirito_lll:
Хочется иметь у себя только модель допустим )
Как вариант, сделать так, что бы модель была разбита на множество текстур которые раскиданы по самым дурацким путям. Ни какой картодел не будет вытаскивать такую модель, ни за что.
ответ
Tumart:
quq_CCCP, а можно поподробнее? И это защитит карту от инжекта?
Подробно - это сделай за меня?
Суть:
 call  BJDebugMsg( I2Sx( 100500  ) )
Выдаст разные значения в депротектнутой и нормальной картах, пока это теория но возьмите и проверьте.
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил:
function Trig_J_Test_Actions takes nothing returns nothing
    local integer i = 486
    local string str = null
    set str = S2S( I2SH( i ) )
    call BJDebugMsg( str )
    set str = null
endfunction

//===========================================================================
function InitTrig_J_Test takes nothing returns nothing
    set gg_trg_J_Test = CreateTrigger(  )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_J_Test, Player(0) )
    call TriggerAddAction( gg_trg_J_Test, function Trig_J_Test_Actions )
endfunction
При добавлении, удалении 3 функций сменяется строка по этому адресу, самое главное найти последнюю строку (ну или как я от балды ввел число) хотя я не уверен что прокатит с числом от балды, нужно найти последнюю строку на момент загрузки карты и смотреть её адрес, а после смотреть что будет записано по этому адресу в таблице строк.
ответ
Karp, Ой способов защиты 100500, щяс есть мемхак, я уже выкладывал пример как проверить вводились ли в код карты измненения.
Так же есть возможность писать код карты байткодами, которые внезапно низя прочитать или перевести в JASS это внутренние инстркции JASS машины. Но это достаточно сложно. Так же Можно загружать свои ДЛЛ, а это дает полный контроль над картой, можно зашифровать и сжать данные в архиве хер знает какими алгоритмами которые никогда не видел варкравт, а при загрузке срипта вызывать Дллку которая бы и расшифровывала это дело и вызывала функцию чтения архива + проверяла контрольную сумму архива (вроде в мемхаке была эта функция), контрульная сумма не та - выгружаем из ДЛЛ вирус, чтонить на подобии шифровальщиков. И читерам уже не до карты и варкравта в целом...
Это не для гуи новичков, придется долго морщить лоб и писать карту на jass + малость в с++ шарить.
ответ
XGM Bot:
Похожие вопросы:

ответ
никак
ответ
Ну да, после этого в редакторе карт не откроешь. Но им и никто не пользуется для этого, когда есть MPQ Editor.
ответ
lll_Kirito_lll:
Хочется иметь у себя только модель допустим )
Как вариант, сделать так, что бы модель была разбита на множество текстур которые раскиданы по самым дурацким путям. Ни какой картодел не будет вытаскивать такую модель, ни за что.
ответ
Tumart:
quq_CCCP, а можно поподробнее? И это защитит карту от инжекта?
Подробно - это сделай за меня?
Суть:
 call  BJDebugMsg( I2Sx( 100500  ) )
Выдаст разные значения в депротектнутой и нормальной картах, пока это теория но возьмите и проверьте.
I2Sx - фольклорная функция ретурн бага, суть преобразует хеш от строки в строку. именно хеш а не инт. т.е адрес в таблице строк на строку.
вот RetunrBug ( www.hiveworkshop.com/threads/accessing-memory-from-the-script-it... )
функция в либе Typecast - I2SH
Ну кароче проверил:
function Trig_J_Test_Actions takes nothing returns nothing
    local integer i = 486
    local string str = null
    set str = S2S( I2SH( i ) )
    call BJDebugMsg( str )
    set str = null
endfunction

//===========================================================================
function InitTrig_J_Test takes nothing returns nothing
    set gg_trg_J_Test = CreateTrigger(  )
    call TriggerRegisterPlayerEventEndCinematic( gg_trg_J_Test, Player(0) )
    call TriggerAddAction( gg_trg_J_Test, function Trig_J_Test_Actions )
endfunction
При добавлении, удалении 3 функций сменяется строка по этому адресу, самое главное найти последнюю строку (ну или как я от балды ввел число) хотя я не уверен что прокатит с числом от балды, нужно найти последнюю строку на момент загрузки карты и смотреть её адрес, а после смотреть что будет записано по этому адресу в таблице строк.
ответ
Karp, Ой способов защиты 100500, щяс есть мемхак, я уже выкладывал пример как проверить вводились ли в код карты измненения.
Так же есть возможность писать код карты байткодами, которые внезапно низя прочитать или перевести в JASS это внутренние инстркции JASS машины. Но это достаточно сложно. Так же Можно загружать свои ДЛЛ, а это дает полный контроль над картой, можно зашифровать и сжать данные в архиве хер знает какими алгоритмами которые никогда не видел варкравт, а при загрузке срипта вызывать Дллку которая бы и расшифровывала это дело и вызывала функцию чтения архива + проверяла контрольную сумму архива (вроде в мемхаке была эта функция), контрульная сумма не та - выгружаем из ДЛЛ вирус, чтонить на подобии шифровальщиков. И читерам уже не до карты и варкравта в целом...
Это не для гуи новичков, придется долго морщить лоб и писать карту на jass + малость в с++ шарить.


23

» WarCraft 3 / Доп.кампания

Похожие вопросы:

ответ
Знаю такой баг. Вылечтл удалением из карты всего импорта-мусора и переводов путей импорта на источник из кампании.
Т.е. этот баг возникает при очень большом весе впихиваемой в кампанию карты.
ответ
Файл повреждённый просто, его и mpq master не открыл и model viewer. Бэкапы надо делать
А про вес то достаточно пару байт в начале стереть.
И для человека это незаметно
Насколько я понял там больше половины файла пустыми символами записано. Так что ищи что у тебя его испортило.
ответ
Хозяин Миров:
В редакторе кампаний открой "Правку", там экспорт есть.
ответ
Maxsavin, берёшь бекап и продолжаешь работать в нём
на будущее будет урок
делай бекап после любого серьёзного изменения
ответ
~8gabriel8:
Тебе нужно открыть редактор кампаний, на вкладке с кнопками экрана кампании внизу можно будет указать фон и музыку.

23

» WarCraft 3 / Вопрос по опыту героев варкрафта.

Похожие вопросы:

ответ
cJass, vJass и Jass2 - разные концы одной палки. Но после освоения структур, которые есть в vJass и освоения синтаксиса cJass ты вполне сможешь быстро освоить любой язык C-семейства.

23

» WarCraft 3 / Как заменить BJ-функции?

Похожие вопросы:

ответ
вопервых ты в 1 и ту же ячейку пытаешся записать 2 значения (location и integer)
во вторых ты создаёш область по кординатам а следующей строчкой находиш эти же кординаты с помощью функций
в 3 ты сохранял точку в хэш и сразу же удалял её
и в 4 ты не инициализировал хэш
function Trig_SlayerUlt_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A00V'
endfunction
function Ultaction takes nothing returns nothing
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
if IsUnitType(GetEnumUnit(), UNIT_TYPE_STRUCTURE) == false and IsUnitEnemy( GetEnumUnit(), GetOwningPlayer(su)) == true then
call UnitDamageTargetBJ( su, GetEnumUnit(), 210.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endif
set su = null
endfunction
function UltimateRun takes nothing returns nothing
local timer st = GetExpiredTimer()
local integer sid = GetHandleId(st)
local unit su = LoadUnitHandle (udg_Hash, sid, 0)
local integer suid = GetHandleId(su)
local location suloc = LoadLocationHandle(udg_Hash, sid, 1)
local effect sueff = LoadEffectHandle (udg_Hash, sid, 2)
local real x = GetLocationX( suloc )
local real y = GetLocationY( suloc )
local rect surect = Rect( x - 600.00*0.5, y - 600.00*0.5, x + 600.00*0.5, y + 600.00*0.5 )
local location random = Location (GetRandomReal(x-600*.5,x+600*.5), GetRandomReal (y-600*.5, y+600*.5))
local integer sc = LoadInteger (udg_Hash, sid, 10)
call SetUnitPositionLoc( su, random )
call SetUnitAnimation( su, "attack" )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Human\\Thunderclap \\ThunderClapCaster.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call AddSpecialEffectLocBJ( random, "Abilities\\Spells\\Items\\AIil\\AIilTarget.mdl" )
call DestroyEffectBJ ( GetLastCreatedEffectBJ() )
call ForGroupBJ ( GetUnitsInRangeOfLocAll(250.00, suloc), function Ultaction )
set bj_wantDestroyGroup=true
call SaveInteger(udg_Hash,sid,10,sc + 1)
if sc >= 10 then
call SetUnitPositionLoc( su, suloc )
call DestroyEffectBJ( sueff )
call SetUnitPathing( su, true )
call SetUnitInvulnerable( su, false )
call PauseUnitBJ( false, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 0.00 )
call PauseTimer(st)
call DestroyTimer(st)
call FlushChildHashtable(udg_Hash, sid)
endif
set suloc = null
set random = null
set st = null
set su = null
set sueff = null
endfunction
function Trig_SlayerUlt_Actions takes nothing returns nothing
local timer st = CreateTimer()
local integer sid = GetHandleId(st)
local unit su = GetTriggerUnit()
local integer suid = GetHandleId(su)
local location suloc = GetUnitLoc(su)
local effect sueff
local real x=GetUnitX(su)
local real y=GetUnitY(su)
call AddSpecialEffectTargetUnitBJ ( "hand right", su, "Abilities\\Weapons \\PhoenixMissile\\Phoenix_Missile.mdl" )
set sueff = GetLastCreatedEffectBJ()
call SetUnitPathing( su, false )
call SetUnitInvulnerable( su, true )
call PauseUnitBJ( true, su )
call SetUnitVertexColorBJ( su, 100, 100, 100, 50.00 )
call SaveUnitHandle(udg_Hash, sid, 0, su)
call SaveAgentHandle(udg_Hash, sid, 1, suloc)
call SaveAgentHandle(udg_Hash, sid, 2, sueff)
call SaveAgentHandle(udg_Hash, suid, 0, st)
call SaveInteger (udg_Hash, sid, 10, 1)
call TimerStart( st, .3, true, function UltimateRun )
set suloc = null
set st = null
set su = null
set sueff = null
endfunction
===========================================================================
function InitTrig_SlayerUlt takes nothing returns nothing
set gg_trg_SlayerUlt = CreateTrigger ( )
set udg_Hash=InitHashtable()
call TriggerRegisterAnyUnitEventBJ ( gg_trg_SlayerUlt, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition ( gg_trg_SlayerUlt, Condition( function Trig_SlayerUlt_Conditions ) )
call TriggerAddAction ( gg_trg_SlayerUlt, function Trig_SlayerUlt_Actions )
endfunction
ответ
Steal nerves:
filterGetUnitsOfTypeIdAll - фильтр, вместо него должно быть написано либо null или Condition( function XXX) Короче зачем нужен фильтр? Фильтр при выборе всех юнитов сразу отсеивает не нужных, если по условию не подходит, то выкидывает.. Вам сразу достается готовая группа с нужными юнитами
А в качестве переменных используй GetFilterUnit, GetFilterPlayer. На гуи по-другому называют MatchingUnit
где XXX - название функции, эта функция возвращает boolean (то есть истину или ложь)
вбей в поиск названии функции, может найдешь ответ
например выделяем все здания UNIT_TYPE_STRUCTURE, а те, кто не является зданием отсеиваем
function XXX takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)
endfunction
насчет статьи не видел, это придет с пониманием. Главное начать. Сначала тупо конверт, и оптимизация. А дальше можешь сам
что у тебя там не работает скидывай сюда

23

» WarCraft 3 / Помогите с утечками, пожалуйста)

Похожие вопросы:

ответ
GF RaiseD:
Я знаю только один способ избавления от утечек - писать код без них.Тебе нужен кто-то знающий игровые скрипты или злосчастный Jass. Иначе уровень неопределённости вопроса не позволит подсказать что-то дельное.

23

» WarCraft 3 / Способности

Похожие вопросы:

ответ
Когда юнит проучивает пассивку, добавляй в группу юнита, который выучил пассивку. Дальше все просто -
Юнит умирает
Киллинг юнит в нашей группе - да
Дайинг юнит не в команде владельца киллинг юнит.
Игрок - адд проперти - 500 золото (овнер оф киллинг юнит)
ответ
скорее всего, он говорит о SetUnitMovespeed ()
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
На JASS-е есть функция GetLearnedSkill(), которая выдает rawcode выученного умения. Создаешь переменную типа "целочисленная" с названием SkillCode, потом в начале действий триггера пишешь через Custom Script что-то типо этого:
set udg_SkillCode=GetLearnedSkill()
и затем делаешь какие тебе там нужны сравнения на переменную SkillCode.
ответ
XGM Bot:
Похожие вопросы:

ответ
ИИ написать, сами скиллы юзают тока крипы подконтрольные ИИ - к примеру нейтральновраждебные.
Так же можно юзать скилл - Сфера замедления, это орб эффект который срабатывая накладывает на цель атаки указанный в его настройках скилл, подойдет для карт типа Castle Fight.
ответ
ИИ чтоли не кастует? Сделай триггерный каст, Событие - юнит обнаружил цель в пределах досягаемости, проглотить не в кулдауне и цель неуязвимый враг, пойти и проглотить юнита...
ответ
Fireproof, попробуй в РО у юнита поменять "Графика - Анимация - обратный ход броска" и "Графика - Анимация - точка броска" на 0. Правда, это уберёт время каста для всех умений у этого юнита.
ответ
Ну тебе нужно чтобы был прямо таки бафф который можно рассеивать?
Для начала сделай способность, и баф на основе какой нибудь пустышки, подойдет ярость у некромантов, так же переодический триггер который раз в пол секунды проверяет всех юнитов в группе, есть ли у них бафф если юнит мертв или у него нет баффа, то у юнита удаляется способность на доп урон зданиям и сам унит удаляется из группы.
При касте твоим шаманов заклинания на цель, ты добавляешь цель заклинания в группу, которую и перебирает описанный выше триггер.
Надеюсь понятно?
ответ
datar1231, Именно поэтому говорят не делать 2 две способности от друга потому когда юнита приходит приказ на использование способности он использует твою нестандартную способность но основываясь на айди стандартной способности или делай на основе другой или незанаю подействует ли канал.


23

» WarCraft 3 / Триггер не работает

Похожие вопросы:

ответ

установка

копируешь себе в карту:
  1. первые 2 триггера
  2. обе нестандартных способности

использование

в тот момент, когда нужно изменить юниту максимальное здоровье или ману вставляешь в триггер Custom Script:
call SetUnitMaxState (unit u, unitstate state, real newValue)
где:
  • umit u заменяешь на нужного юнита (предварительно записав его в переменную)
  • unitstate state заменяешь на UNIT_STATE_MAX_LIFE, если нужно изменить максимальные жизни и UNIT_STATE_MAX_MANA, если нужно изменить максимальную ману
  • real newValue заменяешь на нужное значение

пример

Custom Script: call SetUnitMaxState (udg_u, UNIT_STATE_MAX_MANA, 1000)
устанавливает юниту, записанному в переменную udg_u (в редакторе переменных просто u), ману в количестве равном 1000
также доступно добавление юниту здоровья или маны:
Custom Script: call AddUnitMaxState (udg_u, UNIT_STATE_MAX_LIFE, 536)
устанавливает юниту, записанному в переменную udg_u, здоровье в количестве равном текущее здоровье + 536
ответ
Steal nerves:
  1. посмотри в РО у абилок прописаны приказы
  2. попробуй выводить на экран (см. внизу ссылку). Тыкни этой абилкой на юнита и проверь
  3. поищи в текстовике cj_order.j (находится в архиве игры). Кстати можно этот текстовик на сайте найти, Скорп 1000 выставлял
  4. поищи на сайте, такой вопрос был. Кому-то я на такой вопрос отвечал
ратуша самой себе может продавать? попробуй настроить способность, и потыкает на себя пусть. Мб нельзя
ответ
ScopteRectuS, Я решил проблему там баг, если указать регион как точку назначения портала, то с ним триггеры перестают работать. Я просто указал другой регион.
biridius, Ну это альфа версия, за 5 мин сделал, знаю об утечках.

23

» WarCraft 3 / Как мне сделать условие?

Похожие вопросы:

ответ
событие - игрок пишет в чат сообщение "-privat" как полное совпадение
условие - имя игрока == "Maharajab1k"
действия - нужные при срабатывании команды действия

Для остальных игроков команды не будет существовать как данности.
ответ
  1. Вместо (юнит триггера) вставишь своего героя. (Скрин внизу)
  2. Редактор обьектов ---> Способности ---> нейтрально-враждебные ---> герои ---> повышение характеристик (редактируешь или создаешь нестандартную и редактируешь под себя)
Скрин...
ответ
Если колчество исполнений триггера (в котором складываются предметы) = 1, то вывести сообщение.
ответ
Проверяешь здоровье
наносишь единицу маг.урона
сравниваешь здоровье
отсеиваешь у кого не изменилось
востанавливаешь потраченое хп

23

» WarCraft 3 / Вес моделей

Похожие вопросы:

ответ
пусть уменьшает число вертексов и трианглов. и в конце концов учится моделить в визе, как Вуль.
ответ
перед удалением в редакторе анимации нажмите на Кадры>>>Очистить, потом удаляйте саму анимацию по завершению в редакторе вершин Оптимизация все пункты из графы.
ответ
это не стол заказов а модуль Q/A
с просьбой о помощи в модели на заказ (или как она там называется)
ответ
При конвертации моделей из игр в MDX их вес велик как и вес их текстур ! Я оптимизирую и сжимаю модель через MDLvis а текстуры через BLP Laboratory но их вес все еще внушителен ( Есть ли другие варианты среза веса без дефектов материала ?
Нет. Только удаление лишних анимаций. Остальную оптимизацию веса сделает mdlvis.
При импорте некоторых моделей в карту возникает проблема с их выбором при манипуляции ( Передвижения ) словно их Выбор отсутствует , Думаю некоторые с подобным сталкивались ...
Если модель нельзя выделить в игре курсором, у неё отсутствуют collision shapes (формы коллизии). Их можно добавить в War3ModelEditor -> Окна -> Редактор узлов -> правый клик -> Создать форму - > отредактировать размеры и положение. Их можно добавить несколько, чтобы покрыть модель целиком. Они отвечают за взаимодействие модели с курсором.

Один ресурс - один вопрос, после пойдут замечания.
ответ
Manulli, на 1.26а есть способ обойти этот лимит с помощью мемхака но он очень сложный
а учитывая твои вопросы ты не сможешь это сделать
так что лучше делай как все
т.е. карта на стандартных моделях а mix заменяет их на твои
в результате те у кого есть mix будут видеть твои модели а те у кого нету будут видеть стандартные модели
ну и в игре сообщение выведи что можно скачать архив с крутыми моделями на таком то сайте

23

» WarCraft 3 / Больше утечек

Похожие вопросы:

ответ
он начнёт лагать
выражение калькуляторщик знакомо?
так же не стоит забывать что лимит 2гига оперативы
больше вар просто не может брать
ответ
Карта со всеми утечками и описанием их.
Вместо проклятия банши можно юзать туман(не рекоменд) или безмолвие(там есть вроде бы шанс промаха).
Ещё можно сделать ауру на основе пламени феникса, которое действует на своих.
Юнит повреждён
  • урон меньше 1
  • источник - союзный герой
дать уклонение
вейт/таймер
убрать уклонение если триг юнит не имеет баффа пламени(длительность регулируем)
1
ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек
ответ
Во втором случаи неудивительно, не обнуленная локлка осталась висеть в функции, пробуй юзать глобалки либо делай так:
function CreateUnitBj takes uniut u returns unit 
set u = CreateUnit( Player(0), 'hpea', 0.00, 0.00, 0.00 )
return u
endfunction
ответ
Вместо точек и областей лучше использовать координаты.
Юнит создаётся так:
call CreateUnit(Игрок, 'id юнита', x, y, угол поворота)

23

» WarCraft 3 / Перевод карты на английский

Похожие вопросы:

ответ
Tand, под кодировкой я имею в виду кодировку. Есть такая штука, определяет какими комбинациями нулей и едениц в бинарном виде кодируется каждый символ. Если при сохранении использована не та кодировка, которую понимает игра, то игра, соответственно, неможет сопоставить нулям и еденицам из файла конкретные символы, а значит ничего не показывает или показывает совсем не то, что было написано изначально.
Скачай Notepad++ -встроенные в винду средства годятся разве что заметки о жизни офисного планктона писать.
ответ
Пиши текст с начала в онлайн декодере , после перекодируй вот так:[UTF-8(русский текст)>CP1251(кодировка варика)] и результат вставь в карту.
ответ
Крашлог и карту желательно, мб где то пропустили скобку?

23

» WarCraft 3 / Как заменить Wait на Таймер?

Похожие вопросы:

ответ
Сама функция TriggerSleepAction (Wait) не вызывает утечек, но багнута и при использовании в качестве задержек может способствовать утечкам, поэтому никаких вейтов в спеллах и всяких респаунах - только таймеры, вейты нужны для синхронизации данных и роликов и точка!

23

» WarCraft 3 / Как проверить наличие способности у юнита?

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
глобальный массив не нужен. сохраняй группу в хэш-таблицу на хэндл героя, потом загружай ее когда надо. у каждого героя будет своя группа
вот пример, молот бурь съедает юнита а удар грома ставит всех юнитов обратно
ответ
Просто скрой ее

23

» WarCraft 3 / Посоветуйте карт

Похожие вопросы:

ответ
В этом архиве ищи свои скиллы, в [скобках] смотри нужный ID.
ответ
Footmen Frenzy и Legion TD конечно же!
ответ
quq_CCCP:
bigwolf2000, Чувак, тебе никто не скажет в чем дисинх даже если у него будет весь код перед глазами.
Нужно делать дебаги и играть с тестерами, чтобы отловить десинх.
Опен версию карту в студию если хотите помощи, все экстрасенсы не вышли из новогоднего отпуска...
Карту могу скинуть, но сюда или в лс?)
Steal nerves:
на данный момент ничего неизвестно, поэтому могут посоветовать читать статью дока про десинк
есть логгер xgm.guru/p/wc3/95728
и нужно знать jass
А это уже проблема =(
ответ
Пиши текст с начала в онлайн декодере , после перекодируй вот так:[UTF-8(русский текст)>CP1251(кодировка варика)] и результат вставь в карту.
ответ
Добавить модели в карту, расставить декорации в редакторе, удалить импортированные модели из карты перед самым релизом карты.
Profit.

23

» WarCraft 3 / Neodex

Похожие вопросы:

ответ
Наверное скорее проблема в версии что плагина что макса ну поробуй другую версию макса с 2011-2014 и точно убедись что плагин именно под твою версию.
Наверное закрывай тему так как знатаков макса здесь не очень много.
ответ
Нормально экспортирую неодексом из восьмого и одиннадцатого макса. Экспортирует статичную модель? Перед экспортом нужно ведь выделить не только саму модельку, но ещё и кости.
ответ
ledoed, короче походу я что то нахимичил и у меня не роботала та модель сейчас зделал по новой все вроде роботает стабильно.
ответ
Проблема была решена сменой версии 3Ds max так как на версии 2016 года плагин роботает некоректно.

23

» WarCraft 3 / Текстуры

Похожие вопросы:

ответ
Vova47, отредактируй путь к текстуре при помощи Mdlvis.
ответ
~8gabriel8:
Какой хочешь, если текстура в одной папке с моделью, например, обе на рабочем столе, то никакого, а если текстура в mpq-архиве игры, то путь к ней в архиве. Можно также поставить папку war3imported для удобства, чтобы не надо было пути удалять.
ответ
Хух, понеслось:
  1. Открыл карту, нажми сохранить (путь к карте не должен содержать русских букв) и сразу зайди в раздел "Extensions" - "Edit tileset".
  2. Выбрал нужные тайлсеты, нажми ок, карта сохранится (или сохрани сам) и тогда выходи из карты.
  3. Заходи в карту.
ответ
Каро, чтобы закрыть вопрос - выбери лучший ответ.
ответ
да можно, даже текстуры накладывать друг на друга ,делаеться это в warcraft model editor

23

» WarCraft 3 / Перегонка модели

Похожие вопросы:

ответ
ledoed, короче походу я что то нахимичил и у меня не роботала та модель сейчас зделал по новой все вроде роботает стабильно.

23

» WarCraft 3 / Следы на земле

Похожие вопросы:

ответ
наверно наилучше через ракетный залп механика. Устанавливаеш интервал урона 0.15 урон ХХХ и кол-во выстрелов 1, ставишь ефект гранаты вместо ракет.
А так надо очень хорошо подумать и скомбинировать триггеры и заклинания.
ответ
Вот, нашёл: xgm.guru/files/100/174291/comments/328619/USTS.w3x
А вот, что можно сделать с помощью этой системы:
ответ
Да, можно. Если знаешь как правильно выстроить случайное значение, то особого труда не составит построить определенный сценарий. Это можно реализовать через области, 3 изначальные области где будет выстраиваться тот или иной сценарий + через математический расчет координат областей можно выставить определенные предметы, но краше будет чистый "hardcore", выстраиваем случайное расположение точек, и в них что угодно, магазин, декор, и так далее...

На практике выглядит так:
При прогрузке карты выдаем случайное значение, которое имеет... скажем 3 триггера (3 комнаты). И в триггерах прописываем сценарий рендера локации комнаты, плюс триггер на эффект обитателя в области той или иной комнате.
ответ
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent

    globals
        constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
        timer Zero//Used for 0. sec uses
        integer ZTECurrent = 0
        unit array ZTEUnits[ZTEArraySize]
        integer array ZTEIntegers[ZTEArraySize]
        real array ZTEReals[ZTEArraySize]
        trigger array ZTETriggers[ZTEArraySize]
    endglobals
    
    function ZeroTimeEvent takes nothing returns nothing
            loop
                set  ZTECurrent = ZTECurrent - 1
                call TriggerExecute( ZTETriggers[ZTECurrent] )
                exitwhen ZTECurrent < 1
            endloop
    endfunction
    
    #define ZTEAddUnit(u) = {
        set  ZTEUnits[ZTECurrent] = u
    }
    
    #define ZTEAddInteger(i) = {
        set  ZTEIntegers[ZTECurrent] = i
    }
    
    #define ZTEAddReal(r) = {
        set  ZTEReals[ZTECurrent] = r
    }
    
    #define ConfirmZTE(trig) = {
        set  ZTETriggers[ZTECurrent] = trig
        set  ZTECurrent = ZTECurrent + 1
        call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
    }
    
    
    
endlibrary
Пример использования
#define UnitRemoveForceAttack(u) = {
    call UnitAddAbility( u, 'Abun' )
    call UnitRemoveAbility( u, 'Abun' )
         ZTEAddUnit(u)
         ConfirmZTE(CheckIfUnitHasA002)
}
Минус такой системы в необходимости создавать триггер для каждого блока кода, т.к. массивы блоков кода запрещены

23

» WarCraft 3 / Золото

Похожие вопросы:

ответ
Каждую секунду проверяешь изменение золота у каждого игрока и заносишь в переменную. Если золота стало меньше чем указано в переменной, то установи такое количество золота у остальных игроков.
ответ
В редакторе объектов нужно в поле "Графика - нужная анимация" вписать "gold".
Только как после этого будет выглядеть такой юнит, когда потащит древесину - не знаю, не проверял.
ответ
Дополнительно -> Игровой интерфейс -> "Использовать нестандартный игровой интерфейс" -> Пиктограмма: золото/древесина/пища.
ответ
Ищи в редакторе объектов "пиктограмма на мини-карте" (или "нейтральное здание - значок на мини-карте") - это в редакторе войск.
Саму пиктограмму можно найти в игровом интерфейсе.
Это не скрывает надпись, но позволит добавить пиктограмму любому зданию.
Прикрепил бы скрины, но редактора поблизости нет.

23

» Администрация XGM / Бан

Похожие вопросы:

ответ
Мне тоже интересно, особенно если:
ScorpioT1000:
Времена антона и тыщи прошли, не будет никаких банов)
ответ
Read-Only, чтобы он не мог писать.
Banned, чтобы он не мог публиковать ресурсы в проекте.
ответ
"Alakdar" основной, "Алакдар" клон.
Заранее, спасибо.
ответ
Пусть разлоганится и смотрит, главное, чтобы у него не было возможности смотреть и что-либо делать в проекте в авторизованном состоянии.
и что тебе это даст? Ну посмотрит он с аккаунта гостя твой ресурс, а не с обычного. Функция бана нужна только что бы запретить людям писать в проекте (и делать прочие активные действия для которых нужен аккаунт).
Кстати саму функцию тоже нужно подправить, насколько я помню она немного багнуто работала, ну и конечно она не запрещает ставить ресурсам оценки, это тоже надо будет пофиксить.
ответ
GF RaiseD:
Баг сайта. Можешь сообщить об этом техадминам через форму обратной связи.

23

» WarCraft 3 / Опять они

Похожие вопросы:

ответ
Ятд что не хватило мипмапов.
ответ
Хмм Вроде разобрался скрыть и показать функции почему то багуют всё дело
ОМГ сам затупил под ночь простите... Там есть еще одна похожая функция это свернуть развернуть спутал :) Всё теперь всё работает : D Ура теперь милая мультиборда будет на ресурсах а не громоздкая лидерборда (да еще и без иконок была)
ответ
Во-первых это .blp. Удалить из своего mpq архива ничего не надо. Импортировать пустую текстуру тоже, их можно в редакторе выключить.
ответ
А исправить эти его "тупые" действия никак нельзя?
переписать ai скрипты
он хранится в mpq архивах в файлах с расширением .ai
например аи для людей хранится в файле human.ai
ответ
Что мешает записывать предмет в массив, и каждые 20 сек проверять жив ли предмет, или его забрали. Если забрали, создать в нужных координатах новый...